if (grab)
{
- grab->serial_end = grab->serial_start;
prev_focus = grab->surface;
surface = grab->surface;
}
_gdk_wayland_display_update_serial (display_wayland, serial);
+ if (seat->pointer_info.button_modifiers != 0)
+ {
+ gulong display_serial;
+
+ display_serial = _gdk_display_get_next_serial (seat->display);
+ _gdk_display_end_device_grab (seat->display, seat->master_pointer,
+ display_serial, NULL, TRUE);
+ _gdk_display_device_grab_update (seat->display,
+ seat->master_pointer,
+ seat->pointer,
+ display_serial);
+ }
+
event = gdk_crossing_event_new (GDK_LEAVE_NOTIFY,
seat->pointer_info.focus,
seat->master_pointer,